package com.xbongbong.pro.enums.errorcodes;

import com.xbongbong.i18n.util.I18nMessageUtil;
/**
 * 系统基础全局错误
 * @author 魏荣杰
 *
 */
public enum SystemErrorCodeEnum implements ErrorCode {

    /*
     * 这个用于指代不能直接暴露给用户的服务端错误
     */
    API_ERROR_100001(100001, "enum.errorCode.msg.api_error_100001"),
    API_ERROR_100002(100002, "enum.errorCode.msg.api_error_100002"),
    // 可能进行了重复提交
    API_ERROR_100003(100003, "enum.errorCode.msg.api_error_100003"),
    API_ERROR_100004(100004, "enum.errorCode.msg.api_error_100004"),
    API_ERROR_100005(100005, "enum.errorCode.msg.api_error_100005"),
    API_ERROR_100006(100006, "enum.errorCode.msg.api_error_100006"),
    API_ERROR_100007(100007, "enum.errorCode.msg.api_error_100007"),
    API_ERROR_100008(100008, "enum.errorCode.msg.api_error_100008"),
    API_ERROR_100009(100009, "enum.errorCode.msg.api_error_100009"),
    API_ERROR_100010(100010, "enum.errorCode.msg.api_error_100010"),
    API_ERROR_100011(100011, "enum.errorCode.msg.api_error_100011"),
    API_ERROR_100012(100012, "enum.errorCode.msg.api_error_100012"),
    API_ERROR_100013(100013, "enum.errorCode.msg.api_error_100013"),
    API_ERROR_100014(100014, "enum.errorCode.msg.api_error_100014"),
    API_ERROR_100015(100015, "enum.errorCode.msg.api_error_100015"),
    API_ERROR_100016(100016, "enum.errorCode.msg.api_error_100016" ),
    API_ERROR_100017(100017, "enum.errorCode.msg.api_error_100017" ),
    API_ERROR_100018(100018, "enum.errorCode.msg.api_error_100018" ),
    API_ERROR_100019(100019, "enum.errorCode.msg.api_error_100019" ),
    API_ERROR_100020(100020, "enum.errorCode.msg.api_error_100020" ),
    API_ERROR_100021(100021, "enum.errorCode.msg.api_error_100021" ),
    API_ERROR_100022(100022, "enum.errorCode.msg.api_error_100022" ),
    API_ERROR_100023(100023, "enum.errorCode.msg.api_error_100023" ),
    API_ERROR_100024(100024, "enum.errorCode.msg.api_error_100024"),
    API_ERROR_100025(100025, "enum.errorCode.msg.api_error_100025"),
    API_ERROR_100026(100026, "enum.errorCode.msg.api_error_100026"),
    API_ERROR_100027(100027, "enum.errorCode.msg.api_error_100027"),
    API_ERROR_100028(100028, "enum.errorCode.msg.api_error_100028"),
    API_ERROR_100029(100029, "enum.errorCode.msg.api_error_100029"),
    API_ERROR_100030(100030, "enum.errorCode.msg.api_error_100030"),
    API_ERROR_100031(100031, "enum.errorCode.msg.api_error_100031"),
    API_ERROR_100032(100032, "enum.errorCode.msg.api_error_100032"),
    API_ERROR_100033(100033, "enum.errorCode.msg.api_error_100033"),
    API_ERROR_100034(100034, "enum.errorCode.msg.api_error_100034"),

    API_ERROR_100035(100035, "enum.errorCode.msg.api_error_100035"),
    API_ERROR_100036(100036, "enum.errorCode.msg.api_error_100036"),
    API_ERROR_100037(100037, "enum.errorCode.msg.api_error_100037"),
    API_ERROR_100038(100038, "enum.errorCode.msg.api_error_100038"),
    API_ERROR_100039(100039, "enum.errorCode.msg.api_error_100039"),
    API_ERROR_100040(100040, "enum.errorCode.msg.api_error_100040"),
    API_ERROR_100041(100041, "enum.errorCode.msg.api_error_100041"),
    API_ERROR_100042(100042, "enum.errorCode.msg.api_error_100042"),
    API_ERROR_100043(100043, "enum.errorCode.msg.api_error_100043"),
    API_ERROR_100044(100044, "enum.errorCode.msg.api_error_100044"),
    API_ERROR_100045(100045, "enum.errorCode.msg.api_error_100045"),
    API_ERROR_100046(100046, "enum.errorCode.msg.api_error_100046"),
    API_ERROR_100047(100047, "enum.errorCode.msg.api_error_100047"),
    API_ERROR_100048(100048, "enum.errorCode.msg.api_error_100048"),
    API_ERROR_100049(100049, "enum.errorCode.msg.api_error_100049"),
    API_ERROR_100050(100050, "enum.errorCode.msg.api_error_100050"),
    API_ERROR_100051(100051, "enum.errorCode.msg.api_error_100051"),
    API_ERROR_100052(100052, "enum.errorCode.msg.api_error_100052"),
    API_ERROR_100053(100053, "enum.errorCode.msg.api_error_100053"),
    API_ERROR_100054(100054, "enum.errorCode.msg.api_error_100054"),
    API_ERROR_100055(100055, "enum.errorCode.msg.api_error_100055"),
    API_ERROR_100056(100056, "enum.errorCode.msg.api_error_100056"),
    API_ERROR_100057(100057, "enum.errorCode.msg.api_error_100057"),
    API_ERROR_100058(100058, "enum.errorCode.msg.api_error_100058"),
    API_ERROR_100059(100059, "enum.errorCode.msg.api_error_100059"),
    API_ERROR_100060(100060, "enum.errorCode.msg.api_error_100060"),
    API_ERROR_100061(100061, "enum.errorCode.msg.api_error_100061"),
    API_ERROR_100062(100062, "enum.errorCode.msg.api_error_100062"),

    /**
     * 该错误码比较特殊，特别对于接口测试人员，
     * 出现该错误码的错误，说明接口逻辑出现了未处理的异常，被最外层异常捕获类捕获
     */
    API_ERROR_100063(100063, "enum.errorCode.msg.api_error_100063"),

    /**
     * 该错误很可能是接口请求参数类型不匹配导致
     */
    API_ERROR_100064(100064, "enum.errorCode.msg.api_error_100064"),

    API_ERROR_100065(100065, "enum.errorCode.msg.api_error_100065"),

    API_ERROR_100066(100066, "enum.errorCode.msg.api_error_100066"),

    API_ERROR_100067(100067, "enum.errorCode.msg.api_error_100067"),

    API_ERROR_100068(100068, "enum.errorCode.msg.api_error_100068"),

    API_ERROR_100069(100069, "enum.errorCode.msg.api_error_100069"),

    API_ERROR_100070(100070, "enum.errorCode.msg.api_error_100070"),

    API_ERROR_100071(100071, "enum.errorCode.msg.api_error_100071"),

    API_ERROR_100072(100072, "enum.errorCode.msg.api_error_100072"),

    API_ERROR_100073(100073, "enum.errorCode.msg.api_error_100073"),

    API_ERROR_100074(100074, "enum.errorCode.msg.api_error_100074"),

    API_ERROR_100075(100075, "enum.errorCode.msg.api_error_100075"),
    API_ERROR_100076(100076, "enum.errorCode.msg.api_error_100076"),
    API_ERROR_100077(100077, "enum.errorCode.msg.api_error_100077"),
    API_ERROR_100078(100078, "enum.errorCode.msg.api_error_100078"),
    API_ERROR_100079(100079, "enum.errorCode.msg.api_error_100079"),
    API_ERROR_100080(100080, "enum.errorCode.msg.api_error_100080"),
    API_ERROR_100081(100081, "enum.errorCode.msg.api_error_100081"),
    API_ERROR_100082(100082, "enum.errorCode.msg.api_error_100082"),
    API_ERROR_100083(100083, "enum.errorCode.msg.api_error_100083"),
    API_ERROR_100084(100084, "enum.errorCode.msg.api_error_100084"),
    API_ERROR_100085(100085, "enum.errorCode.msg.api_error_100085"),
    API_ERROR_100086(100086, "enum.errorCode.msg.api_error_100086"),
    API_ERROR_100087(100087, "enum.errorCode.msg.api_error_100087"),
    API_ERROR_100088(100088, "enum.errorCode.msg.api_error_100088"),
    API_ERROR_100089(100089, "enum.errorCode.msg.api_error_100089"),
    API_ERROR_100090(100090, "enum.errorCode.msg.api_error_100090"),
    API_ERROR_100091(100091, "enum.errorCode.msg.api_error_100091"),
    API_ERROR_100092(100092, "enum.errorCode.msg.api_error_100092"),
    API_ERROR_100093(100093, "enum.errorCode.msg.api_error_100093"),
    API_ERROR_100094(100094, "enum.errorCode.msg.api_error_100094"),
    API_ERROR_100095(100095, "enum.errorCode.msg.api_error_100095"),

    //非钉钉管理员无法操作
    API_ERROR_100096(100096, "enum.errorCode.msg.api_error_100096"),

    //电子合同应用企业未实名，请联系钉钉管理员完成实名认证后，继续发起签署。
    API_ERROR_100097(100097, "enum.errorCode.msg.api_error_100097"),

    //您个人未完成实名认证，请认证后继续使用。
    API_ERROR_100098(100098, "enum.errorCode.msg.api_error_100098"),

    //账户余额为0，请及时充值
    API_ERROR_100099(100099, "enum.errorCode.msg.api_error_100099"),

    //e签宝余额为0，请联系管理员及时充值。
    API_ERROR_100100(100100, "enum.errorCode.msg.api_error_100100"),

    //e签宝余额为0，请到PC端充值。
    API_ERROR_100101(100101, "enum.errorCode.msg.api_error_100101"),

    //文件错误或不存在
    API_ERROR_100102(100102, "enum.errorCode.msg.api_error_100102"),

    //电子合同签署中或已完成
    API_ERROR_100103(100103, "enum.errorCode.msg.api_error_100103"),

    API_ERROR_100104(100104, "enum.errorCode.msg.api_error_100104"),

    API_ERROR_100105(100105, "enum.errorCode.msg.api_error_100105"),

    API_ERROR_100106(100106, "enum.errorCode.msg.api_error_100106"),

    //获取accessToken失败
    API_ERROR_100125(100125, "enum.errorCode.msg.api_error_100125"),

    //钉钉触发器请求失败
    API_ERROR_100126(100126, "enum.errorCode.msg.api_error_100126"),

    API_ERROR_100127(100127, "enum.errorCode.msg.api_error_100127"),
    //没有权限跳到首页
    API_ERROR_100128(100128, "enum.errorCode.msg.api_error_100128"),
    API_ERROR_100129(100129, "enum.errorCode.msg.api_error_100129"),
    API_ERROR_100130(100130, "enum.errorCode.msg.api_error_100130"),

    // 404 对象不存在，#请不要轻易补充在404后面更新错误码#
    API_ERROR_100404(100404, "enum.errorCode.msg.api_error_100404"),
    ;

    /**
     * 错误类型
     * @see ErrorCodeTypeEnum
     */
//    private final String type;
    /**
     * 错误码
     */
    private final int code;
    /**
     * 错误描述
     */
    private final String msg;

    SystemErrorCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return I18nMessageUtil.getMessage(msg);
    }
}
